home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3.2 / Ham Radio Version 3.2 (Chestnut CD-ROMs)(1993).ISO / packet / n17jsrc / stopwatc.asm < prev    next >
Assembly Source File  |  1991-02-06  |  831b  |  52 lines

  1. ; Stopwatch primitives - used in sw.c
  2. ; Copyright 1991 Phil Karn, KA9Q
  3.     .MODEL    MEMMOD,C
  4.     LOCALS
  5.     %MACS
  6.     .LALL
  7.     public stopval,swstart
  8.     .DATA
  9.     extrn Swflag:byte
  10.     .CODE
  11. dbase    dw    @Data
  12.  
  13. ; start the interval timer
  14. swstart    proc    far
  15.     cmp    Swflag,1
  16.     jnz    @@exit
  17.     push    ax
  18. ; send the mode word to the 8254
  19.     mov    al,0b8h    ; select counter 2, write lsb,msb, mode 4, binary
  20.     out    43h,al
  21. ; initialize the counter at 0
  22.     xor    al,al
  23.     out    42h,al    ; lsb
  24.     out    42h,al    ; msb
  25. ; gate the counter on
  26.     in    al,61h
  27.     or    al,1
  28.     out    61h,al
  29.     pop    ax
  30. @@exit:    ret
  31. swstart    endp
  32.  
  33. ; stop the interval timer and return its value
  34. stopval    proc    far
  35. ; gate the counter off
  36.     in    al,61h
  37.     and    al,0feh
  38.     out    61h,al
  39. ; latch counter 2
  40.     mov    al,080h
  41.     out    43h,al
  42. ; get the value
  43.     in    al,42h
  44.     mov    ah,al
  45.     in    al,42h
  46.     xchg    ah,al
  47.     ret
  48.     endp
  49.  
  50.     end
  51.  
  52.